home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et3_0-a1.lha / et3 / src / Form.C < prev    next >
C/C++ Source or Header  |  1992-07-10  |  2KB  |  81 lines

  1. #ifdef __GNUG__
  2. #pragma implementation
  3. #endif
  4.  
  5. #include "Form.h"
  6.  
  7. #include "Class.h"
  8. #include "Math.h"
  9. #include "OrdColl.h"
  10. #include "TextItem.h"
  11.  
  12. //---- Form --------------------------------------------------------------------
  13.  
  14. NewMetaImpl0(Form, Box);
  15.  
  16. Form::Form(int id, VObjAlign, Point g)
  17.     : Box(id, Point(2,0), g, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVBase))
  18. {
  19. }
  20.  
  21. Form::Form(int id, VObjAlign, Point g, SeqCollection *cp)
  22.     : Box(id, Point(2,0), g, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVBase), cp)
  23. {
  24. }
  25.  
  26. Form::Form(int id, VObjAlign, Point g, VObject *va_(vop), ...)
  27.     : Box(id, Point(2,0), g, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVBase))
  28. {
  29.     va_list ap;
  30.     va_start(ap, va_(vop));
  31.     SetItems(va_(vop), ap);
  32.     va_end(ap);
  33. }
  34.  
  35. Form::Form(VObject *va_(vop), ...)
  36.     : Box(cIdNone, Point(2,0), gPoint2, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVCenter))
  37. {
  38.     va_list ap;
  39.     va_start(ap, va_(vop));
  40.     SetItems(va_(vop), ap);
  41.     va_end(ap);
  42. }
  43.  
  44. Form::Form(int id, VObjAlign, Point g, char* va_(label), ...) 
  45.     : Box(id, Point(2,0), g, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVCenter))
  46. {
  47.     va_list ap;
  48.     va_start(ap, va_(label));
  49.     Init(va_(label), ap);
  50.     va_end(ap);
  51. }
  52.  
  53. Form::Form(char* va_(label), ...) 
  54.     : Box(cIdNone, Point(2,0), gPoint2, (VObjAlign)(eVObjHLeft|eVObjHExpand|eVObjVCenter))
  55. {
  56.     va_list ap;
  57.     va_start(ap, va_(label));
  58.     Init(va_(label), ap);
  59.     va_end(ap);
  60. }
  61.  
  62. void Form::Init(char *label, va_list ap)
  63. {
  64.     register VObject *vop;
  65.     
  66.     for (int i= 0; ; i++) {
  67.     if (Math::Even(i)) {
  68.         char *s= (i == 0) ? label : va_arg(ap, char*);
  69.         if (s) {
  70.         vop= new TextItem(s);
  71.         vop->SetFlag(eVObjHFixed);
  72.         } else
  73.         break;
  74.     } else {
  75.         if ((vop= va_arg(ap, VObject*)) == 0)
  76.         break;
  77.     }
  78.     Add(vop);
  79.     }
  80. }
  81.